// 引入 Vue
import Vue from "vue";
// 引入 App
import App from "./App.vue";

// 关闭 Vue的生产提示
Vue.config.productionTip = false;

/* 全局事件总线：
第一步：可以让所有组件看到一个$bus  (解决方法：将x放在Vue的原型上)
第二步：让$bus可以调用 $emit() $on() $off() 方法 (解决方法：将x变为vc/vm) */

/* Vue.protoype === VueComponent.prototype.__proto__ vc可以访问到Vue原型上属性和方法
将一个 vc 挂载到Vue的原型上，在其他组件的实例对象中访问该 vc 并绑定,触发和解绑自定义事件*/

// 创建 vm
new Vue({
  el: "#app",
  render: (h) => h(App),

  // 全局事件总线标准写法
  // 在初始化前,vm创建后执行
  beforeCreate(){
    // this为vm身上有$emit() $on() $off()方法,因此$bus也可以调用这些方法
    Vue.prototype.$bus = this; // 安装全局事件总线
  },

});
